
const fs = require('fs');
const path = require('path');
const inquirer = require('inquirer');
const ejs = require('ejs');
// 命令行交互 询问姓名和年龄
inquirer.prompt([
    {
        type: 'input',
        name: 'name',
        message: 'Project name?'
    },
    {
        type: 'input',
        name: 'age',
        message: 'Project age?'
    }
]).then( res => {
    // 获取templates路径
    const tmpDir = path.join(__dirname, 'templates');
    // 获取最外层路径 
    const destDir = process.cwd();
    // 读取templates路径下的所有文件 将模板下的文件全部转换到目标目录
    fs.readdir(tmpDir, (err,files) => {
        if (err) throw err;
        files.forEach(file => {
            // 通过模板引擎渲染目录 参数1：路径 参数2：res是数据 参数3是结果
            ejs.renderFile(path.join(tmpDir, file), res, (err, result) => {
                if ( err ) throw err
                // 将结果写入目标文件路径
                fs.writeFileSync(path.join(destDir, file), result);
            })
        })
    })
})